草庐IT

lua - 唯一的随 secret 钥 redis lua 脚本

全部标签

ruby - 我可以从 Ruby 中的必需脚本访问数据吗?

是否可以在“主”脚本以外的ruby​​文件中访问__END__之后的文本?例如:#b.rbB_DATA=DATA.read__END__bbb.#a.rbrequire'b'A_DATA=DATA.readputs'A_DATA:'+A_DATAputs'B_DATA:'+B_DATA__END__aaa.C:\Temp>rubya.rbA_DATA:B_DATA:aaa有什么方法可以从b.rb获取“bbb”吗? 最佳答案 不幸的是,DATA全局常量是在加载“main”脚本时设置的。一些可能有帮助的事情:您可以至少让A_DATA是正

ruby-on-rails - 如何在 Factory Girl 或 Minifacture 中使用随机唯一数据制作 Ruby 测试工厂?

我正在用一个典型的工厂测试一个典型的Rails模型:#Mymodelusesa3-letteruppercaseairportcode,#suchas"ATL"forAtlanta,"BOS"forBoston,etc.classAirport我正在添加更多测试并开始看到机场代码中的冲突:例如,工厂创建了一个代码为“XYZ”的机场,然后对工厂的后续调用尝试创建一个具有相同代码的机场。序列是解决这个问题的一种方法。例如,使用FactoryGirl序列、有序列表或预先计算的枚举,以及维护下一个可用代码状态的类似方法。我的问题是:解决这个问题的非序列方法是什么?我想使用随机数据,不是序列。我

ruby - 有没有办法用内存分配报告来分析 ruby​​ 1.9.2 脚本?

我的ruby​​应用程序遇到了瓶颈,但我无法弄清楚它在哪里变慢了。我找到了memprof,但它不支持1.9。我还发现ruby​​-prof似乎在1.9.2上运行良好,但内存分配需要修补的ruby​​解释器,我只能找到ruby​​1.8的补丁。是否有ruby​​分析器可以完成这项工作? 最佳答案 您是否尝试过分析GC?Ruby1.9.2包括GC::Profiler。GC::Profiler.enableGC.startputsGC::Profiler.report您可能还想查看ObjectSpace.count_objects。

ruby-on-rails - 在 Ruby/Rails 中生成唯一的哈希值

我正在寻找有关在Ruby/Rails中生成唯一哈希字符串的最佳实践的建议。通常我使用MD5、SHA等来执行此操作,但是为散列选择源值并不是很简单(并不总是首选使用时间戳)。所以我的问题是:哪些值更适合用于生成唯一哈希值?(数据库列值、时间戳等)是否有适合此类工作的gem?如有任何建议,我们将不胜感激。 最佳答案 使用UUID:在ruby1.9中require'securerandom'SecureRandom.uuid在ruby1.8中$geminstalluuidtoolsUUIDTools::UUID.random_create

ruby-on-rails - 阅读 Rails session secret 的最佳方式是什么?

我想以编程方式访问Railssessionsecret(我正在使用它来生成登录token)。这是我想出的:ActionController::Base.session.first[:secret]这将返回sessionsecret。但是,每次调用ActionController::Base.session时,它都会向数组中添加另一个条目,因此您最终会得到如下内容:[{:session_key=>"_new_app_session",:secret=>"totally-secret-you-guys"},{},{},{},{},{},{},{},{},{},{},{},{}]我觉得这不太

脚本底部的 Ruby 方法?

我使用的是ruby​​1.8.7。我可以发誓我之前已经在脚本底部编写了我的函数并且运行良好。我必须将它们放在顶部吗?这似乎是他们现在唯一的工作方式。没什么大不了的。我只是更喜欢将它们放在底部,所以我想我会问。 最佳答案 您可以在一个或多个BEGINblock中执行初始化代码(继承自Perl,后者继承自awk)。can_i_do_this?#=>yesBEGIN{defcan_i_do_this?puts"yes"end}为了完整起见,还有ENDblock:END{can_i_do_this?#=>yes}defcan_i_do_th

ruby-on-rails - 在不使用屏幕的情况下在后台运行 ruby​​ 脚本

我在Rails环境中有两个必须全天候运行的脚本。我在远程服务器上工作,所以我需要使用ssh启动脚本,这意味着我需要一直打开ssh窗口。我正在寻找一种在后台运行这些脚本的简单方法,这样它们就不会在我关闭ssh连接后立即被取消。我不想使用屏幕。我认为必须有更简单的方法来处理这个问题。不是吗? 最佳答案 我认为最基本的解决方案是nohup:nohupmyscript&>/dev/null& 关于ruby-on-rails-在不使用屏幕的情况下在后台运行ruby​​脚本,我们在StackOver

ruby - 从从 stdin 读取的 Ruby 脚本调用时,Pry 不会停止

我创建了一个控制台Ruby脚本,它使用ARGF从文件或标准输入加载数据,然后调用Pry。当我在(Pry暂停)中传递一个文件但在我使用stdin传递我的数据时失败(Pry不停止并且只是退出Ruby)时,这非常有效。这很奇怪,有人知道为什么吗?我想通过stdin传递数据并让Pry暂停。看,一个示例脚本:require'rubygems'require'pry'defpry_it(str)binding.pryendpry_it(ARGF.read)当我使用ARGV中的文件调用此应用程序时,我得到了正确的响应-暂停%bundleexecrubypry_test.rbfile.txtFrom:

ruby - 如何限制同一 Ruby 脚本的并发实例?

在Ruby1.9.x中,不允许我的Ruby脚本再次运行或等待前一个实例完成的简单方法是什么?**我希望避免困惑的文件锁定或进程表检查。有没有类似globalmutex的东西或信号量已经在核心?我研究了原生Mutex但这似乎只适用于一个Ruby进程内的线程,而不适用于不同进程。**稍后我可能会添加超时功能,或者限制为N个实例,或者希望使用多个全局锁(每个系统范围的资源一个,最多只能有一个实例)。 最佳答案 这段非常短的代码将卡住在原地,直到/tmp中以您的脚本命名的锁定文件被独占锁定:File.open("/tmp/#{File.ba

ruby-on-rails - 如何创建一个 cron 作业来运行 ruby​​ 脚本?

我想创建一个cron作业来运行ruby​​脚本。这是我放在crontab中的内容。2****ruby/home/mark/project/script.rb>>/home/mark/cronOutput.txt但它没有运行。我认为当cron以root身份运行时,环境加载存在一些问题。请帮忙。 最佳答案 如果您的ruby​​在非标准路径中,那么我个人喜欢将我的ruby​​调用包装在一个shell脚本中,从而确保正确设置我的ruby​​程序所需的所有路径等,并在crontab中安排脚本。做类似的事情2****/home/mark/pro